using Project.Configs.Abstractions;
using UnityEngine;

namespace Project.Configs
{
    [CreateAssetMenu(menuName = ConfigsMenuName + nameof(CharacterConfig))]
    public class CharacterConfig : ScriptableConfigBase
    {
        [field: SerializeField] public string Name { get; private set; } = None;
        [field: SerializeField] public Sprite Sprite { get; private set; }

        [field: SerializeField, Min(0)] public int MaxPointsToSpendValue { get; private set; }
        [field: SerializeField, Min(0)] public int MaxPrimaryStatPointsValue { get; private set; }

        [field: SerializeField, Min(0)] public int StrengthPointsValue { get; private set; }
        [field: SerializeField, Min(0)] public int AgilityPointsValue { get; private set; }
        [field: SerializeField, Min(0)] public int IntelligencePointsValue { get; private set; }

        [field: SerializeField, Min(0)] public float StrengthToHealthPointsMultiplier { get; private set; }
        [field: SerializeField, Min(0)] public float AgilityToArmorPointsMultiplier { get; private set; }
        [field: SerializeField, Min(0)] public float IntelligenceToManaPointsMultiplier { get; private set; }
    }
}
